home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
EGAVGA.SWG
/
0038_TXTFADE.PAS.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-05-28
|
2KB
|
93 lines
{ RON CZARNIK }
Unit TXTFADE;
Interface
Procedure TextFadeIn(Speed : Integer);
Procedure TextFadeOut(Speed : Integer);
Implementation
Uses
Dos, Crt;
Type
DacType = Array[1..256,1..3] of Byte;
Var
dac1,
dac2 : DacType;
x, y,
i, erg,
gesamt : Word;
Procedure Read_DACs(Var Dac : DacType);
Var
r : Registers;
begin
r.ax := $1017;
r.bx := 0;
r.cx := 256;
r.es := SEG(Dac);
r.dx := Ofs(Dac);
Intr($10, r);
end;
Procedure Write_DACs(Dac : DacType);
Var
r : Registers;
begin
r.ax := $1012;
r.bx := 0;
r.cx := 256;
r.es := seg(Dac);
r.dx := Ofs(Dac);
Intr($10, r);
end;
{ fade....}
Procedure TextFadeOut(Speed : Integer);
begin;
Repeat
erg := 0;
For x := 1 to 256 do
For y := 1 to 3 do
begin
if dac2[x, y] > 0 then
DEC(dac2[x, y]);
erg := erg + dac2[x, y];
end;
Write_Dacs(dac2);
Delay(Speed);
Until erg = 0;
end;
{ restore....fades also}
Procedure TextFadeIn(Speed : Integer);
begin;
Repeat
erg := 0;
For x := 1 to 256 do
For y := 1 to 3 do
begin
if dac2[x, y] < dac1[x, y] then
INC(dac2[x,y]);
erg := erg + dac2[x, y];
end;
Write_Dacs(dac2);
Delay(Speed);
Until (erg = gesamt) or (KeyPressed);
Write_Dacs(dac1);
end;
begin
Read_Dacs(dac1);
dac2 := dac1;
gesamt := 0;
For x := 1 to 256 do
For y := 1 to 3 do
gesamt := gesamt + dac1[x, y];
end.